Lex Fridman is a Russian-American computer scientist and podcaster. He hosts the Lex Fridman Podcast, in which he interviews guests, which have included prominent figures in various fields, including science, technology, sports, and politics.
Theodor Capitani von Kurnatowski III, known professionally as Theo Von, is an American stand-up comedian, podcaster, actor, and former reality television personality. He is the host of the This Past Weekend podcast and former co-host of The King and the Sting podcast with Brendan Schaub.
Timothy Daniel Pool is an American political commentator and podcast host. He first became known for live streaming the 2011 Occupy Wall Street protests. He joined Vice Media and Fusion TV in 2014,
A few years ago I was a broke, university dropout, at 18 I built an industry leading social media marketing company, and at 27 I resigned as CEO.
Flagrant is a comedy podcast that delivers unfiltered, unapologetic, and unruly hot takes directly to your dome piece.
The PBD Podcast is a podcast that discusses, current events, trending topics and politics as they relate to life and business. Stay tuned for new episodes and guest appearances.
Videos from YMH Studios podcasts "Your Mom's House" with Tom Segura and Christina Pazsitzky, “2 Bears, 1 Cave” with Tom Segura and Bert Kreischer, "First Date" with Lauren Compton, "The Danny Brown Show" with Danny Brown, and "Not Today, Pal" with Robert Iler and Jamie-Lynn Sigler.
Exclusive, hard-hitting interviews with rappers, singers, actors, basketball players, football players, professional wrestlers, comedians, former criminals, activists, media personalities, business tycoons, models, producers, managers, lawyers, social media stars, doctors, book authors, and everyone in between. Updated daily.
# lets import libraries
from googleapiclient.discovery import build
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Function to get Lex Fridman Youtube channel statistics
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
Lex_Fridman_channel_id = ['UCSHZKyawb77ixDdsGog4iWA' # Lex Fridman
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, Lex_Fridman_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(Lex_Fridman_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube,Lex_Fridman_channel_id)
[{'Channel_name': 'Lex Fridman', 'Subscribers': '3580000', 'Views': '582585116', 'Total_videos': '793'}]
channel_statistics = get_channel_stats(youtube,Lex_Fridman_channel_id )
Lex_Fridman_channel_data =pd.DataFrame(channel_statistics)
Lex_Fridman_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | Lex Fridman | 3580000 | 582585116 | 793 |
# Function to get Theo Von Youtube channel statistics
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
Theo_Von_channel_id = ['UC5AQEUAwCh1sGDvkQtkDWUQ' # Theo Von
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, Theo_Von_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(Theo_Von_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube,Theo_Von_channel_id)
[{'Channel_name': 'Theo Von', 'Subscribers': '2370000', 'Views': '374799041', 'Total_videos': '675'}]
channel_statistics = get_channel_stats(youtube,Theo_Von_channel_id )
Theo_Von_channel_data =pd.DataFrame(channel_statistics)
Theo_Von_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | Theo Von | 2370000 | 374799041 | 675 |
# Function to get TimCast Youtube channel statistics
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
TimCast_channel_id = ['UCLwNTXWEjVd2qIHLcXxQWxA' # TimCast
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, TimCast_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(TimCast_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube,TimCast_channel_id)
[{'Channel_name': 'Timcast IRL', 'Subscribers': '1620000', 'Views': '1076098082', 'Total_videos': '6370'}]
channel_statistics = get_channel_stats(youtube,TimCast_channel_id )
TimCast_channel_data =pd.DataFrame(channel_statistics)
TimCast_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | Timcast IRL | 1620000 | 1076098082 | 6370 |
# Function to get The Diary of a CEO Youtube channel statistics
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
The_Diary_of_a_CEO_channel_id = ['UCGq-a57w-aPwyi3pW7XLiHw' # The Diary of a CEO
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, The_Diary_of_a_CEO_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(The_Diary_of_a_CEO_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube,The_Diary_of_a_CEO_channel_id)
[{'Channel_name': 'The Diary Of A CEO', 'Subscribers': '4860000', 'Views': '291280650', 'Total_videos': '261'}]
channel_statistics = get_channel_stats(youtube,The_Diary_of_a_CEO_channel_id )
The_Diary_of_a_CEO_channel_data =pd.DataFrame(channel_statistics)
The_Diary_of_a_CEO_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | The Diary Of A CEO | 4860000 | 291280650 | 261 |
# Function to get FLAGRANT Youtube channel statistics
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
FLAGRANT_channel_id = ['UC5PstSsGrRwj2o6asQpC4Rg' # FLAGRANT
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube,FLAGRANT_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(FLAGRANT_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube,FLAGRANT_channel_id)
[{'Channel_name': 'FLAGRANT', 'Subscribers': '1530000', 'Views': '354549135', 'Total_videos': '458'}]
channel_statistics = get_channel_stats(youtube,FLAGRANT_channel_id )
FLAGRANT_channel_data =pd.DataFrame(channel_statistics)
FLAGRANT_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | FLAGRANT | 1530000 | 354549135 | 458 |
# Function to get PDB Podcast Youtube channel statistics
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
PDB_Podcast_channel_id = ['UCGX7nGXpz-CmO_Arg-cgJ7A' # PDB Podcast
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, PDB_Podcast_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(PDB_Podcast_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube,PDB_Podcast_channel_id)
[{'Channel_name': 'PBD Podcast', 'Subscribers': '1600000', 'Views': '267348904', 'Total_videos': '1149'}]
channel_statistics = get_channel_stats(youtube,PDB_Podcast_channel_id )
PDB_Podcast_channel_data =pd.DataFrame(channel_statistics)
PDB_Podcast_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | PBD Podcast | 1600000 | 267348904 | 1149 |
# Function to get YMH Studios Youtube channel statistics
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
YMH_Studios_channel_id = ['UCYIgiXwJck_Pb5Nj-wIrsqg' # YMH Studios
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, YMH_Studios_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(YMH_Studios_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube,YMH_Studios_channel_id )
[{'Channel_name': 'YMH Studios', 'Subscribers': '1860000', 'Views': '907072350', 'Total_videos': '2633'}]
channel_statistics = get_channel_stats(youtube,YMH_Studios_channel_id)
YMH_Studios_channel_data =pd.DataFrame(channel_statistics)
YMH_Studios_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | YMH Studios | 1860000 | 907072350 | 2633 |
# Function to get VladTv Youtube channel statistics
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
VladTv_channel_id = ['UCg7lal8IC-xPyKfgH4rdUcA' # VladTv
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, VladTv_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(VladTv_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube,VladTv_channel_id)
[{'Channel_name': 'djvlad', 'Subscribers': '5740000', 'Views': '5370479203', 'Total_videos': '30163'}]
channel_statistics = get_channel_stats(youtube,VladTv_channel_id )
VladTv_channel_data =pd.DataFrame(channel_statistics)
VladTv_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | djvlad | 5740000 | 5370479203 | 30163 |
# Combine DataFrames using concat
combined_podcast_channels_df = pd.concat([
Lex_Fridman_channel_data ,
Theo_Von_channel_data,
TimCast_channel_data,
The_Diary_of_a_CEO_channel_data ,
FLAGRANT_channel_data,
PDB_Podcast_channel_data,
YMH_Studios_channel_data,
VladTv_channel_data,
], ignore_index=True)
# Display the result
print(combined_podcast_channels_df)
Channel_name Subscribers Views Total_videos 0 Lex Fridman 3580000 582585116 793 1 Theo Von 2370000 374799041 675 2 Timcast IRL 1620000 1076098082 6370 3 The Diary Of A CEO 4860000 291280650 261 4 FLAGRANT 1530000 354549135 458 5 PBD Podcast 1600000 267348904 1149 6 YMH Studios 1860000 907072350 2633 7 djvlad 5740000 5370479203 30163
# lets change the datatypes to perform visualisations
combined_podcast_channels_df['Subscribers'] = pd.to_numeric(combined_podcast_channels_df['Subscribers'])
combined_podcast_channels_df['Views'] = pd.to_numeric(combined_podcast_channels_df['Views'])
combined_podcast_channels_df['Total_videos'] = pd.to_numeric(combined_podcast_channels_df['Total_videos'])
# letsconirm if the datatypes has changed
combined_podcast_channels_df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 8 entries, 0 to 7 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Channel_name 8 non-null object 1 Subscribers 8 non-null int64 2 Views 8 non-null int64 3 Total_videos 8 non-null int64 dtypes: int64(3), object(1) memory usage: 388.0+ bytes
import matplotlib.pyplot as plt
def plot_sorted_bar(df, column, color, ax):
# Sort the DataFrame by the specified column in descending order
df_sorted = df.sort_values(by=column, ascending=False)
# Plotting the bar chart
ax.bar(df_sorted['Channel_name'], df_sorted[column], color=color)
ax.set_title(column.capitalize()) # Set the title with the capitalized column name
# Sort and plot Subscribers
fig, axes = plt.subplots(nrows=3, ncols=1, figsize=(10, 15))
plot_sorted_bar(combined_podcast_channels_df, 'Subscribers', 'blue', axes[0])
# Sort and plot Views
plot_sorted_bar(combined_podcast_channels_df, 'Views', 'green', axes[1])
# Sort and plot Total Videos
plot_sorted_bar(combined_podcast_channels_df, 'Total_videos', 'orange', axes[2])
# Adjust layout for better visibility
plt.tight_layout()
# Show the plot
plt.show()